import { parseRSSFeed } from './universal-rss-parser.js';
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';

// 获取当前脚本文件所在目录
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

// 读取配置文件（相对于脚本文件位置）
const configPath = path.join(__dirname, 'rss-feeds-config.json');
const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));

// 确保 data 文件夹存在
const dataDir = path.join(process.cwd(), 'data');
if (!fs.existsSync(dataDir)) {
  fs.mkdirSync(dataDir, { recursive: true });
  console.log('📁 已创建 data 文件夹\n');
}

console.log(`📡 开始获取 ${config.feeds.length} 个 RSS 订阅源...\n`);

// 并行获取所有 RSS 源
const results = await Promise.allSettled(
  config.feeds.map(async (feed) => {
    const outputPath = path.join(dataDir, feed.outputFile);
    const data = await parseRSSFeed(feed.url, {
      outputPath,
      verbose: true
    });
    return {
      name: feed.name,
      url: feed.url,
      success: true,
      itemCount: data.items.length,
      outputPath
    };
  })
);

// 显示结果摘要
console.log('\n=== 获取结果摘要 ===\n');
results.forEach((result, index) => {
  const feed = config.feeds[index];
  if (result.status === 'fulfilled') {
    const data = result.value;
    console.log(`✅ ${data.name}`);
    console.log(`   文章数: ${data.itemCount}`);
    console.log(`   保存到: ${data.outputPath}\n`);
  } else {
    console.log(`❌ ${feed.name}`);
    console.log(`   错误: ${result.reason.message}\n`);
  }
});

// 更新 AI 资讯页面
console.log('🔄 正在更新 AI 资讯页面...\n');
try {
  const updateModule = await import('./update-ai-news.js');
  if (updateModule.updateAINewsList) {
    await updateModule.updateAINewsList();
  }
} catch (error) {
  console.error('❌ 更新 AI 资讯页面失败:', error.message);
}

